package com.heima.model.schedule.pojos;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sun.org.apache.xpath.internal.operations.Plus;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
//Task在DTO中，表示前端传来的，Taskinfo在POJO中，表示数据库中的
/**
 * <p>
 * 任务表
 * </p>
 *
 * @author itheima
 */
@Data
@TableName("taskinfo")
public class Taskinfo implements Serializable {

    private static final long serialVersionUID = 1L;

//    MyBatis-Plus 内置的插入方法会在执行 SQL 插入操作后，
//    通过 JDBC 的 getGeneratedKeys() 功能来获得数据库生成的主键。
//    这意味着无论你使用什么类型的 ID 策略，只要你调用 insert() 方法，
//    MyBatis-Plus 都会在插入后尝试将生成的 ID 填充回实体对象的相应属性。

//    如果你使用 @TableId(type = IdType.AUTO)，在插入后，数据库会生成一个自增 ID，MyBatis-Plus 会将这个 ID 填充到 taskinfo 的 id 字段。
//
//    如果你使用 @TableId(type = IdType.ID_WORKER)，在插入操作前，应用逻辑会生成一个 ID（通常是在服务层）。在此情况下，MyBatis-Plus 会使用这个 ID。
//
//    在调用 insert() 方法后，通过 taskinfo.getId() 读取的 ID 总是从 MyBatis-Plus 的内部机制获得，而由哪种策略确定 ID 的具体生成方式则取决于你在 @TableId 中的设置。

//    当使用 IdType.ID_WORKER 时，ID 是在应用层生成并赋值给实体的。
//    当使用 IdType.AUTO 时，ID 是在数据库层生成并赋值给实体的。

    /**
     * 任务id
     */
    @TableId(type = IdType.ID_WORKER)
    private Long taskId;

    /**
     * 执行时间
     */
    @TableField("execute_time")
    private Date executeTime;

    /**
     * 参数
     */
    @TableField("parameters")
    private byte[] parameters;

    /**
     * 优先级
     */
    @TableField("priority")
    private Integer priority;

    /**
     * 任务类型
     */
    @TableField("task_type")
    private Integer taskType;


}
